<?php
/*
*向数据表新增数据
* $link 连接数据库的资源集变量
*$table_name 需要插入数据的数据表名称
*$data 数据数组(一维),数组的元素下标，对应表的字段名称，元素的值是对应需要插入数据的字段值
*核心，构造出相应的插入命令 insert into
*/
function insert($link, $table_name, $data){
	
	$filed_string = '';
	$value_string = '';
	foreach($data as $key => $val){
		$key = mysqli_real_escape_string($link, $key); // 进行输入过滤，防止SQL注入
		$val = mysqli_real_escape_string($link, $val);
		
		$filed_string .=  '`'.$key.'`,'; // 组装字段列表的字符串
		$value_string .= "'".htmlspecialchars($val)."',"; // 对字段值进行输出编码
	}
	$filed_string = substr($filed_string, 0, -1);
	$value_string = substr($value_string, 0, -1);
	
	$sql = "INSERT INTO $table_name ($filed_string) VALUES ($value_string)";
	
	$result = mysqli_query($link, $sql);
	return $nums = mysqli_affected_rows($link); //上面执行的sql影响数据表的行数 1
}

/*
*修改数据表的数据
*$link 连接数据库的资源集变量
*$table_name 需要插入数据的数据表名称
*$data 数据数组(一维),数组的元素下标，对应表的字段名称，元素的值是对应需要修改数据的字段值
*$where 按什么条件去修改
*核心，构造出相应的修改命令 update
*/
function update($link, $table_name, $data, $where){
	$string = '';
	foreach($data as $key => $val){
		$key = mysqli_real_escape_string($link, $key); // 进行输入过滤，防止SQL注入
		$val = mysqli_real_escape_string($link, $val);
		
		$string .= "`".$key."`"."='".htmlspecialchars($val)."',"; // 对字段值进行输出编码
	}
	$string = substr($string, 0, -1);
	
	$sql = "UPDATE $table_name SET $string WHERE $where";
	
	$result = mysqli_query($link, $sql);
	return $nums = mysqli_affected_rows($link); //上面执行的sql影响数据表的行数
}

/*
*删除数据
*$link 连接数据库的资源集变量
*$table_name 需要删除数据的数据表名称
*$where 按什么条件去删除
*/
function delete($link, $table_name, $where){
	
	$sql = "DELETE FROM $table_name WHERE $where";
	$result = mysqli_query($link, $sql);
	return $nums = mysqli_affected_rows($link); //上面执行的sql影响数据表的行数
	
}

/*
*删除数据
*$link 连接数据库的资源集变量
*$table_name 需要删除数据的数据表名称
*$where 按什么条件去删除
*/
function deleteById($link, $table_name, $id){
	
	$id = mysqli_real_escape_string($link, $id); // 进行输入过滤，防止SQL注入
	
	$sql = "DELETE FROM $table_name WHERE id='$id'";
	return $result = mysqli_query($link, $sql);
	
}

/*
* 根据sql命令，查询返回查询列表
*$link 链接数据库的资源
$sql 对应的数据库查询命令
返回 查询命令查询到的数据结果(二维数组)
*/
function selectBysql($link, $sql){
	  
	$query = mysqli_query($link, $sql); //得到的是一个资源集的数据
	$list = [];
	while($row = mysqli_fetch_assoc($query)){
		$list[] = $row; //将每一条数据的数组，放入一个数组里面，得到一个二维数组
	}
	  
	return $list;
}

/*
* 根据表名称和条件查询
*$link 链接数据库的资源
 $table_name 对应的数据表名称
 $where 查询条件
返回 查询命令查询到的数据结果(二维数组)
*/
function getList($link, $table_name, $where = ' 1 '){
	$sql = "SELECT * FROM $table_name WHERE $where";
	$query = mysqli_query($link, $sql); //得到的是一个资源集的数据
	$list = [];
	while($row = mysqli_fetch_assoc($query)){
		$list[] = $row; //将每一条数据的数组，放入一个数组里面，得到一个二维数组
	}

	return $list;
}

/*
* 查询一条记录
*/
function getOne($link, $sql){
	$query = mysqli_query($link, $sql); //得到一个资源数据
	return mysqli_fetch_assoc($query);
}

/*
* 查询一条记录 根据Id查询
*/
function getOnebyId($link, $table_name, $id){
	$id = mysqli_real_escape_string($link, $id); // 进行输入过滤，防止SQL注入
	
	$sql = "SELECT * FROM $table_name WHERE id='$id'"; 
	$query = mysqli_query($link, $sql); //得到一个资源数据
	return mysqli_fetch_assoc($query);
}

/*
* 查询一条记录 根据查询条件
*/
function find($link, $table_name, $where = 1){
	$where = mysqli_real_escape_string($link, $where); // 进行输入过滤，防止SQL注入
	
	$sql = "SELECT * FROM $table_name WHERE $where";
	$query = mysqli_query($link, $sql); //得到一个资源数据
	return mysqli_fetch_assoc($query);
}
	
// $link = mysqli_connect("localhost", "username", "password", "database"); // 替换成你的数据库连接信息

// 插入数据示例
// $data = array('name' => 'John', 'age' => '25', 'email' => 'john@example.com');
// $insertResult = insert($link, 'users', $data);
// if($insertResult > 0){
// 	echo "数据插入成功！";
// } else {
// 	echo "数据插入失败！";
}

// 更新数据示例
// $data = array('name' => 'John Doe', 'age' => '30', 'email' => 'johndoe@example.com');
// $updateResult = update($link, 'users', $data, 'id=1');
// if($updateResult > 0){
// 	echo "数据更新成功！";
// } else {
// 	echo "数据更新失败！";
// }

// 删除数据示例
// $deleteResult = delete($link, 'users', 'id=1');
// if($deleteResult > 0){
// 	echo "数据删除成功！";
// } else {
// 	echo "数据删除失败！";
// }

// 查询数据示例
// $getListResult = getList($link, 'users', 'age > 20');
// if(!empty($getListResult)){
// 	foreach($getListResult as $row){
// 		echo "姓名：" . $row['name'] . ", 年龄：" . $row['age'] . ", 邮箱：" . $row['email'] . "<br>";
// 	}
// } else {
// 	echo "没有找到匹配的记录！";
// }

// // 根据id查询数据示例
// $getOneByIdResult = getOnebyId($link, 'users', 1);
// if(!empty($getOneByIdResult)){
// 	echo "姓名：" . $getOneByIdResult['name'] . ", 年龄：" . $getOneByIdResult['age'] . ", 邮箱：" . $getOneByIdResult['email'];
// } else {
// 	echo "没有找到匹配的记录！";
// }

// mysqli_close($link);
?>
